/* Zatok - язык программирования текстовых игр
 * (С) 2010 - 2012 Меркулов Матвей Юрьевич
 * Код лицензирован под лицензией GNU LGPL
 * Вы можете прочитать текст лицензии по адресу:
 * http://www.gnu.org/copyleft/lesser.html
 * или прочитать русский перевод по адресу:
 * http://ru.wikisource.org/wiki/GNU_Lesser_General_Public_License
 */

package base.module.intrface;

import base.CBase;
import base.CGraphics;
import base.CProject;
import base.module.CModule;
import java.awt.Font;
import java.awt.FontFormatException;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class CSetTextFont extends CModule {
	@Override
	public void Init() {
		AssertParam( 2 );
	}
	
	
	@Override
	public void Execute() {
		CGraphics.TextFont = SetFont();
		CGraphics.Init();
	}



	public Font SetFont() {
		String Filename = Param[ 0 ].ToString();
		int Size = Param[ 1 ].ToInt();
		Font font = null;
		if ( Filename.startsWith( "*" ) ) {
			font = new Font( Filename.substring( 1 ), 0, Size );
		} else {
			Filename = CBase.GetFilename( CProject.ProjectDir, Filename );
			try {
				font = Font.createFont( Font.TRUETYPE_FONT, new File( Filename ) );
				font = font.deriveFont( (float) Size );
			} catch ( FontFormatException ex ) {
				Logger.getLogger( CSetTextFont.class.getName() ).log( Level.SEVERE, null, ex );
			} catch ( IOException ex ) {
				Logger.getLogger( CSetTextFont.class.getName() ).log( Level.SEVERE, null, ex );
			}
		}
		return font;
	}
}
